package com.xaicode.auth.security.support;

import cn.hutool.core.stream.StreamUtil;

import java.util.List;
import java.util.Objects;
import java.util.ServiceLoader;
import java.util.stream.Collectors;

/**
 * 自定义解析指定类特定方法的工具
 * 
 * @date 2024/12/6
 */
public class ExcludeUriPatternsLoader {

    /**
     * 加载各模块下单独自定义的不需要登录的uri规则
     */
    public static List<String> all() {
        return StreamUtil.of(ServiceLoader.load(ExcludeUriPatterns.class))
                .map(ExcludeUriPatterns::getExcludePatterns)
                .filter(Objects::nonNull)
                .flatMap(List::stream)
                .collect(Collectors.toList());
    }

}
